package com.zb.network.service;

import com.zb.entity.FieldValVo;
import com.zb.result.PageUtil;
import com.zb.vo.NetworkDetailVo;
import com.zb.vo.NetworkSelectVo;

import java.util.List;
import java.util.Map;

/**
 * @Author WEN
 * @Date 2023/10/19 0019
 **/
public interface ConNetworkService {
    /**
     * 获取服务商列表
     * @param custAccId 商家ID
     * @param networkSelectVo 搜索条件
     * @return
     */
    Map<String, Object> getList(Long custAccId, NetworkSelectVo networkSelectVo);

    /**
     * 根据服务商ID获取服务商详情
     * @param id 服务商ID
     * @return
     */
    NetworkDetailVo getDetail(Long id);

    /**
     * 获取服务商详情之工单明细列表
     * @param networkId 服务商ID
     * @param pageUtil
     * @return
     */
    Map<String, Object> getNetworkDetailOrderList(Long networkId, PageUtil pageUtil);

    /**
     * 获取服务商详情之工单配件列表
     * @param networkId 服务商ID
     * @param pageUtil 分页对象
     * @return
     */
    Map<String, Object> getNetworkDetailOrderSpareList(Long networkId, PageUtil pageUtil);

    /**
     * 获取服务商详情之工单费用列表
     * @param networkId 服务商ID
     * @param pageUtil 分页对象
     * @return
     */
    Map<String, Object> getNetworkDetailOrderFeeList(Long networkId, PageUtil pageUtil);

    /**
     * 获取服务商详情之服务商结算
     * @param networkId 服务商ID
     * @param pageUtil 分页对象
     * @return
     */
    Map<String, Object> getNetworkDetailModuleSettlementList(Long networkId, PageUtil pageUtil);

    /**
     * 获取服务商详情之资质认证信息
     * @param networkId 服务商ID
     * @return
     */
    List<FieldValVo> getNetworkDetailAuthenField(Long networkId);

    /**
     * 批量删除服务商
     * @param ids
     */
    void deleteBatchById(List<Long> ids);


    /**
     * 批量更改团队模式
     * @param custAccId 商家ID
     * @param ids 服务商ID
     * @param teamType 团队类型：1-团队，2-个人
     */
    void updateNetworkTeamType(Long custAccId, List<Long> ids, Integer teamType);


}
